var fs = require('fs');

fs.readFile('./files/1.txt', 'utf8', function (err, data) {
    if (err) {
        throw err;
    }
    console.log(data);
});

fs.readFile('./files/2.txt', 'utf8', function (err, data) {
    if (err) {
        throw err;
    }
    console.log(data);
});

fs.readFile('./files/3.txt', 'utf8', function (err, data) {
    if (err) {
        throw err;
    }
    console.log(data);
});

// fs.readFile('./files/1.txt', 'utf8', function (err, data) {
//     if (err) {
//         throw err;
//     } else {
//         console.log(data);
//         fs.readFile('./files/2.txt', 'utf8', function (err, data) {
//             if (err) {
//                 throw err;
//             } else {
//                 console.log(data);
//                 fs.readFile('./files/3.txt', 'utf8', function (err, data) {
//                     if (err) {
//                         throw err;
//                     }
//                     console.log(data);
//                 });
//             }
//         });
//     }
// });

// function readFilePromise(path, encoding = "utf8") {
//     const promise = new Promise((resolve, reject) => {
//         fs.readFile(path, (err, data) => {
//             if (err) return reject(err);
//             return resolve(data.toString(encoding));
//         });
//     });
//     return promise;
// }

// readFilePromise("./files/1.txt").then(res => console.log(res));
// readFilePromise("./files/2.txt").then(res => console.log(res));
// readFilePromise("./files/3.txt").then(res => console.log(res));

// readFilePromise("./files/1.txt")
//     .then(res => console.log(res))
//     .then(readFilePromise("./files/2.txt").then(res => console.log(res)))
//     .then(readFilePromise("./files/3.txt").then(res => console.log(res)));

// async function readFiles() {
//     await readFilePromise("./files/1.txt").then(res => console.log(res));
//     await readFilePromise("./files/2.txt").then(res => console.log(res));
//     await readFilePromise("./files/3.txt").then(res => console.log(res));
// };

// readFiles();

// const fsPromises = require("fs").promises;

// fsPromises.readFile("./files/3.txt", { encoding: "utf8", flag: "r" })
//     .then(console.log)
//     .catch(console.error);

// // 在同一个文件上多次使用 fsPromises.writeFile() 且不等待 Promise 被解决（或被拒绝）是不安全的。
// data = '道冲而用之或不盈，渊兮似万物之宗。挫其锐，解其纷，和其光，同其尘。湛兮似或存，吾不知谁之子，象帝之先。';
// fsPromises.writeFile("./files/4.txt", data, { encoding: "utf8", flag: "w" })
//     .then(console.log)
//     .catch(console.error);
